iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
AI & Data

YOLO系列網路技術採用以及實作系列 第 21

[DAY 21] YOLOv3、YOLOv4訓練自己的資料集

  • 分享至 

  • xImage
  •  

小前言:

今天放學,緊接著是國慶連假,搭火車後回到家跟家人聊聊天,到了晚上才想到還沒完成鐵人賽的文章,先前安裝好的環境放在宿舍的電腦裡面,因此臨時趕快將我的筆電也安裝好YOLOv3以及YOLOv4的環境,來進行今天的實作。
因為發文時間比較趕,先以飛機機身缺陷偵測資料集為例。

硬體

  • 筆電的GPU: NVIDIA GeForce RTX 2060
  • 記憶體: 8G
  • CUDA: 10.1
  • CUDNN: cudnn-10.1-windows10-x64-v7.6.5.32

預先準備

  • 檢查資料集內容已分好train跟valid,所以我們可以直接創立train.txt以及valid.txt
    1. 在資料集同樣位置創立一個python檔用於讀取資料集內容並輸出txt檔
          #輸出train以及val的list
          import os
          import pandas as pd
          from os import path
          #train的位置
          train_src = "./aircraft_fuselage_yolo/images/train/"
          #valid的位置
          val_src = "./aircraft_fuselage_yolo/images/val/"
          def filename_csv(file,name):
              filename=[]
              #讀取資料夾內容
              for x in os.listdir(file):
                  filename.append(os.path.basename(x))
              #寫入txt
              with open(name+'.txt','w',newline='') as file:
                  for item in filename:
                      file.write('./yolodata/'+str(item)+'\n')
              return 0
          filename_csv(train_src,'train')
          filename_csv(val_src,'valid')
          print('Finish')
      
    2. 將原本的cfg資料夾命名成cfg_origin,並創建一個空的名稱為cfg的資料夾,再創一個yolodata的資料夾。
    3. 並利用剛剛寫好的python檔執行後,將創立好的train.txt以及valid.txt放進去cfg資料夾中
    4. 將train以及valid的影像及標註檔全部放進去yolodata資料夾中。
    5. 複製cfg_origin資料夾中的coco.data以及coco.name檔案到cfg資料夾中,並改名為obj.data以及obj.name。
    6. 打開cfg資料夾的obj.data檔案,該檔案為類別的名稱,清空裡面的內容,改成下面內容,該內容從資料集附的Classes.txt得到,內容順序由上到下分別對應標註檔的類別:'0'、'1'、'2'、'3'。
      scratch
      paint_peel
      rust
      rivet_damage
      

目前還有obj.data以及模型的cfg檔還沒設定,因為發文時間關係,所以今天先完成到這個步驟,其他剩餘的步驟留到明天的文章進行說明。


上一篇
[DAY 20] YOLOv3以及YOLOv4環境建置
下一篇
[DAY 22] YOLOv3、YOLOv4模型訓練
系列文
YOLO系列網路技術採用以及實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言